import Vue from 'vue'
import App from './App.vue'


import axios from 'axios'
import { request } from './network/request'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

// 1.axios基本使用
// 使用全局的axios和对应的配置在进行网络请求
// axios(config)
axios({
  // url: 'http://www.pack-mate.com/api/article/category/lst/0',
  url: 'https://api.feast.jlyangchu.com/api/live_goods_cate/list',
  method: 'get',    // 若不设置 默认get请求 
  // 专门针对get请求的参数拼接
  params: {
    // type: 'pop',
    // page: 1
  }
}).then(res => {
  console.log(res)
  // console.log('成功')

})

// axios.get(url[,config])
// axios.post(url[,config])

// 2. axios发送并发请求
// axios.all([axios(),axios()]).then(results => {

// })

axios.all([axios({
  url:''

}),axios({
  url:'',
  params: {
    type: 'pop',
    page: 5
  }
})]).then(results => {
  console.log(results)
  console.log(results[0])
  console.log(results[1])
})

axios.all([axios({
  url:''

}),axios({
  url:'',
  params: {
    type: 'pop',
    page: 5
  }
})]).then(axios.spread((res1, res2) => {
  console.log(res1)
  console.log(res2)
}))

// 数组的解构
// const names = ['why', 'kebe', 'james']
// const name1 = names[0]
// const name2 = names[1]
// const name3 = names[2]

// 数组解构写法
// const [name1, name2, name3] = names;


// 4. 创建对应的axios实例
const instance = axios.create({
  baseURL: '',
  timeout: 5000
})

instance({
  url: ''
}).then(result => {
  console.log(result)
})


// 5. 封装request 模块
// 方式一
// import { request } from './network/request'
// request({
//   url: '/api/live_goods_cate/list',
// }, res => {
//   console.log(res)

// },err => {
//   console.log(err)
// })


// 方式二
// request({
//   baseConfig: {

//   },
//   success: function(res) {
    
//   },
//   failure: function(err) {

//   }
// })

// 方式三
request({
  url: '/api/live_goods_cate/list',
}).then(res => {
  console.log(res)
}).catch(err => {
  console.log(err)
})


